bitkeeper revision 1.1159.156.1 (4189294bhEVxhbLKBhFfQF071MOltw)
authorcl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>
Wed, 3 Nov 2004 18:54:03 +0000 (18:54 +0000)
committercl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>
Wed, 3 Nov 2004 18:54:03 +0000 (18:54 +0000)
Build system cleanups.

Makefile
buildconfigs/Rules.mk
buildconfigs/mk.linux-2.4-xen0
buildconfigs/mk.linux-2.4-xenU
buildconfigs/mk.linux-2.6-xen0
buildconfigs/mk.linux-2.6-xenU
buildconfigs/mk.netbsd-2.0-xenU

index 615191c8fe18e246611b292f288c3ee8b5fcd19a..33a212ddbc966864c998b51c05666bec048d64f0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,9 +12,13 @@ SOURCEFORGE_MIRROR := http://heanet.dl.sourceforge.net/sourceforge
 #KERNELS = mk.linux-2.6-xen0 mk.linux-2.6-xenU mk.linux-2.4-xen0 mk.linux-2.4-xenU mk.netbsd-2.0-xenU
 KERNELS = mk.linux-2.6-xen0 mk.linux-2.6-xenU
 
+ALLKERNELS = $(patsubst buildconfigs/%,%,$(wildcard buildconfigs/mk.*))
+ALLSPARSETREES = $(patsubst %-xen-sparse,%,$(wildcard *-xen-sparse))
+
 export INSTALL_DIR SOURCEFORGE_MIRROR
 
-.PHONY: all dist install xen tools kernels docs kdelete kclean mkpatches world clean mrproper
+.PHONY:        all dist install xen tools kernels docs world clean mkpatches mrproper
+.PHONY:        kbuild kdelete kclean
 
 all:   dist
 
@@ -49,17 +53,19 @@ docs:
        sh ./docs/check_pkgs && \
                $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C docs install || true
 
+kbuild: kernels
+
 # Delete the kernel build trees entirely
 kdelete:
        for i in $(KERNELS) ; do $(MAKE) -f buildconfigs/$$i delete ; done
 
 # Clean the kernel build trees
 kclean:
-       for i in $(KERNELS) ; do $(MAKE) -f buildconfigs/$$i delete ; done
+       for i in $(KERNELS) ; do $(MAKE) -f buildconfigs/$$i clean ; done
 
 # Make patches from kernel sparse trees
 mkpatches:
-       $(MAKE) -f buildconfigs/Rules.mk mkpatches
+       for i in $(ALLSPARSETREES) ; do $(MAKE) -f buildconfigs/Rules.mk $$i-xen.patch ; done
 
 
 # build xen, the tools, and a domain 0 plus unprivileged linux-xen images,
@@ -77,9 +83,10 @@ clean:
        $(MAKE) -C docs clean
 
 # clean, but blow away kernel build tree plus tar balls
-mrproper: clean kdelete
-       rm -rf dist patches *.tar.bz2 
-       $(MAKE) -f buildconfigs/Rules.mk mrproper
+mrproper: clean
+       rm -rf dist patches
+       for i in $(ALLKERNELS) ; do $(MAKE) -f buildconfigs/$$i delete ; done
+       for i in $(ALLSPARSETREES) ; do $(MAKE) -f buildconfigs/Rules.mk $$i-mrproper ; done
 
 install-twisted:
        wget http://www.twistedmatrix.com/products/get-current.epy
index 17826830f369c19543903cfde804bfe5fa31d0b4..3c7194c2c6726dc9c5a6f8a781c03ac84885f8f2 100644 (file)
@@ -1,80 +1,68 @@
 
 # We expect these two to already be set if people 
 # are using the top-level Makefile
-DIST_DIR    ?= $(shell pwd)/dist
-INSTALL_DIR ?= $(DIST_DIR)/install
+DIST_DIR       ?= $(shell pwd)/dist
+INSTALL_DIR    ?= $(DIST_DIR)/install
 
+.PHONY:        mkpatches mrproper
 
-# Figure out which Linux version
-LINUX_26VER ?= $(shell ( /bin/ls -ld linux-2.6.*-xen-sparse ) \
-               2>/dev/null | sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' )
 
-LINUX_24VER ?= $(shell ( /bin/ls -ld linux-2.4.*-xen-sparse ) \
-               2>/dev/null | sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' )
 
-LINUX_SRC_PATH   ?= .:..
+# Expand Linux series to Linux version
+LINUX_SERIES   ?= 2.6
+LINUX_VER      ?= $(patsubst linux-%-xen-sparse,%,$(wildcard linux-$(LINUX_SERIES)*-xen-sparse))
 
-LINUX_26SRC      ?= $(firstword $(foreach dir,$(subst :, ,$(LINUX_SRC_PATH)),\
-                    $(wildcard $(dir)/linux-$(LINUX_26VER).tar.*z*)))
+# Setup Linux search patch
+LINUX_SRC_PATH ?= .:..
+vpath linux-%.tar.bz2 $(LINUX_SRC_PATH)
 
-LINUX_24SRC      ?= $(firstword $(foreach dir,$(subst :, ,$(LINUX_SRC_PATH)),\
-                    $(wildcard $(dir)/linux-$(LINUX_24VER).tar.*z*)))
+# download a pristine Linux kernel tarball if there isn't one in LINUX_SRC_PATH
+linux-%.tar.bz2: override _LINUX_VDIR = $(word 1,$(subst ., ,$*)).$(word 2,$(subst ., ,$*))
+linux-%.tar.bz2:
+       echo "Cannot find linux-$*.tar.bz2 in path $(LINUX_SRC_PATH)"
+       wget http://www.kernel.org/pub/linux/kernel/v$(_LINUX_VDIR)/linux-$*.tar.bz2 -O./$@
 
-.PHONY:        mkpatches linux-$(LINUX_24VER)-xen.patch linux-$(LINUX_26VER)-xen.patch mrproper
 
-# search for a pristine kernel tar ball, or try downloading one
-linux-$(LINUX_26VER).tar.bz2:
-ifeq ($(LINUX_26SRC),)
-       echo "Cannot find linux-$(LINUX_26VER).tar.bz2 in path $(LINUX_SRC_PATH)"
-       wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-$(LINUX_26VER).tar.bz2 -O./linux-$(LINUX_26VER).tar.bz2
-LINUX_26SRC := ./linux-$(LINUX_26VER).tar.bz2 
-endif
 
-pristine-linux-$(LINUX_26VER): $(LINUX_26SRC)
-       rm -rf tmp-linux-$(LINUX_26VER) $@ && \
-       mkdir -p tmp-linux-$(LINUX_26VER) && \
-       tar -C tmp-linux-$(LINUX_26VER) -jxf $(LINUX_26SRC) && \
-       mv tmp-linux-$(LINUX_26VER)/* $@
-       touch $@ # update timestamp to avoid rebuild
-       @rm -rf tmp-linux-$(LINUX_26VER)
-
-
-# search for a pristine kernel tar ball, or try downloading one
-linux-$(LINUX_24VER).tar.bz2:
-ifeq ($(LINUX_24SRC),)
-       echo "Cannot find linux-$(LINUX_24VER).tar.bz2 in path $(LINUX_SRC_PATH)"
-       wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-$(LINUX_24VER).tar.bz2 -O./linux-$(LINUX_24VER).tar.bz2
-LINUX_24SRC := ./linux-$(LINUX_24VER).tar.bz2 
-endif
-
-pristine-linux-$(LINUX_24VER): $(LINUX_24SRC)
-       rm -rf tmp-linux-$(LINUX_24VER) $@ && \
-       mkdir -p tmp-linux-$(LINUX_24VER) && \
-       tar -C tmp-linux-$(LINUX_24VER) -jxf $(LINUX_24SRC) && \
-       mv tmp-linux-$(LINUX_24VER)/* $@ && \
-       touch $@ # update timestamp to avoid rebuild
-       @rm -rf tmp-linux-$(LINUX_24VER)
+# Expand NetBSD release to NetBSD version
+NETBSD_RELEASE  ?= 2.0
+NETBSD_VER      ?= $(patsubst netbsd-%-xen-sparse,%,$(wildcard netbsd-$(NETBSD_RELEASE)*-xen-sparse))
+NETBSD_CVSSNAP  ?= 20040906
 
-linux-$(LINUX_24VER)-xen.patch: pristine-linux-$(LINUX_24VER)  
-       rm -rf tmp-$@
-       cp -al pristine-linux-$(LINUX_24VER) tmp-$@
-       ( cd linux-$(LINUX_24VER)-xen-sparse ; \
-          ./mkbuildtree ../tmp-$@ )    
-       diff -Nurp pristine-linux-$(LINUX_24VER) tmp-$@ > $@ || true
-       rm -rf tmp-$@
+# Setup NetBSD search patch
+NETBSD_SRC_PATH        ?= .:..
+vpath netbsd-%.tar.bz2 $(NETBSD_SRC_PATH)
+
+# download a pristine NetBSD tarball if there isn't one in NETBSD_SRC_PATH
+netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2:
+       echo "Cannot find $@ in path $(NETBSD_SRC_PATH)"
+       wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 -O./$@
+
+netbsd-%.tar.bz2: netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2
+       ln -fs $< $@
+
+
+
+
+pristine-%: %.tar.bz2
+       rm -rf tmp-$* $@ && \
+         mkdir -p tmp-$* && \
+         tar -C tmp-$* -jxf $< && \
+         mv tmp-$*/* $@
+       touch $@ # update timestamp to avoid rebuild
+       @rm -rf tmp-$*
 
-linux-$(LINUX_26VER)-xen.patch: pristine-linux-$(LINUX_26VER)
+%-xen.patch: pristine-%
        rm -rf tmp-$@
-       cp -al pristine-linux-$(LINUX_26VER) tmp-$@
-       ( cd linux-$(LINUX_26VER)-xen-sparse ; \
-          ./mkbuildtree ../tmp-$@ )    
-       diff -Nurp pristine-linux-$(LINUX_26VER) tmp-$@ > $@ || true
+       cp -al pristine-$* tmp-$@
+       ( cd $*-xen-sparse && ./mkbuildtree ../tmp-$@ ) 
+       diff -Nurp pristine-$* tmp-$@ > $@ || true
        rm -rf tmp-$@
 
-mkpatches: linux-$(LINUX_24VER)-xen.patch linux-$(LINUX_26VER)-xen.patch
+%-mrproper:
+       rm -rf pristine-$* $*.tar.bz2
+       rm -rf $*-xen.patch
+       rm -rf $*-tools $*-tools.tar.bz2
 
-mrproper:
-       rm -rf pristine-linux-$(LINUX_24VER) linux-$(LINUX_24VER).tar.bz2
-       rm -rf pristine-linux-$(LINUX_26VER) linux-$(LINUX_26VER).tar.bz2
-       rm -rf linux-$(LINUX_24VER)-xen.patch linux-$(LINUX_26VER)-xen.patch
-       rm -rf pristine-netbsd-2.0 netbsd-2.0-tools
+# never delete any intermediate files.
+.SECONDARY:
index 713b746c033a51272a1b95b20e63661f8ff5df0f..c83291324ee2392828b8165886613669c6ea0b9c 100644 (file)
@@ -1,7 +1,9 @@
 
+LINUX_SERIES = 2.4
+
 EXTRAVERSION = xen0
 
-FULLVERSION  = $(LINUX_24VER)-$(EXTRAVERSION)
+FULLVERSION  = $(LINUX_VER)-$(EXTRAVERSION)
 
 LINUX_DIR    = linux-$(FULLVERSION)
 
@@ -19,11 +21,11 @@ patches/ebtables.diff:
        mkdir -p patches
        wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@
 
-$(LINUX_DIR):  pristine-linux-$(LINUX_24VER) patches/ebtables.diff
+$(LINUX_DIR):  pristine-linux-$(LINUX_VER) patches/ebtables.diff
        rm -rf $(LINUX_DIR)
-       cp -al pristine-linux-$(LINUX_24VER) $(LINUX_DIR)
+       cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR)
        # Apply arch-xen patches
-       ( cd linux-$(LINUX_24VER)-xen-sparse ; \
+       ( cd linux-$(LINUX_VER)-xen-sparse ; \
           ./mkbuildtree ../$(LINUX_DIR) )
        # Patch kernel Makefile to set EXTRAVERSION
        ( cd $(LINUX_DIR) ; \
@@ -40,11 +42,4 @@ clean:
        $(MAKE) -C $(LINUX_DIR) ARCH=xen clean
 
 delete: 
-       rm -rf tmp-linux-$(LINUX_24VER) $(LINUX_DIR) 
-
-
-
-
-
-
-
+       rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
index 7099d12c20bfc06c412a09d03a17858b2da89829..c1afc937082c988fdc411db0fe2e59979faee99e 100644 (file)
@@ -1,7 +1,9 @@
 
+LINUX_SERIES = 2.4
+
 EXTRAVERSION = xenU
 
-FULLVERSION  = $(LINUX_24VER)-$(EXTRAVERSION)
+FULLVERSION  = $(LINUX_VER)-$(EXTRAVERSION)
 
 LINUX_DIR    = linux-$(FULLVERSION)
 
@@ -19,11 +21,11 @@ patches/ebtables.diff:
        mkdir -p patches
        wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@
 
-$(LINUX_DIR):  pristine-linux-$(LINUX_24VER) patches/ebtables.diff
+$(LINUX_DIR):  pristine-linux-$(LINUX_VER) patches/ebtables.diff
        rm -rf $(LINUX_DIR)
-       cp -al pristine-linux-$(LINUX_24VER) $(LINUX_DIR)
+       cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR)
        # Apply arch-xen patches
-       ( cd linux-$(LINUX_24VER)-xen-sparse ; \
+       ( cd linux-$(LINUX_VER)-xen-sparse ; \
           ./mkbuildtree ../$(LINUX_DIR) )
        # Patch kernel Makefile to set EXTRAVERSION
        ( cd $(LINUX_DIR) ; \
@@ -38,11 +40,4 @@ clean:
        $(MAKE) -C $(LINUX_DIR) ARCH=xen clean
 
 delete: 
-       rm -rf tmp-linux-$(LINUX_24VER) $(LINUX_DIR) 
-
-
-
-
-
-
-
+       rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
index 18e315ef71fc4ee3784fa26e05f5f0036f024a8d..67a5c7b3a8c36f1894f040381a8e164c4d0f07b5 100644 (file)
@@ -1,7 +1,9 @@
 
+LINUX_SERIES = 2.6
+
 EXTRAVERSION = xen0
 
-FULLVERSION  = $(LINUX_26VER)-$(EXTRAVERSION)
+FULLVERSION  = $(LINUX_VER)-$(EXTRAVERSION)
 
 LINUX_DIR    = linux-$(FULLVERSION)
 
@@ -15,11 +17,11 @@ build: $(LINUX_DIR)
        $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install
 
 # The real action starts here!
-$(LINUX_DIR):  pristine-linux-$(LINUX_26VER)
+$(LINUX_DIR):  pristine-linux-$(LINUX_VER)
        rm -rf $(LINUX_DIR)
-       cp -al pristine-linux-$(LINUX_26VER) $(LINUX_DIR)
+       cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR)
        # Apply arch-xen patches
-       ( cd linux-$(LINUX_26VER)-xen-sparse ; \
+       ( cd linux-$(LINUX_VER)-xen-sparse ; \
           ./mkbuildtree ../$(LINUX_DIR) )
        # Patch kernel Makefile to set EXTRAVERSION
        ( cd $(LINUX_DIR) ; \
@@ -33,11 +35,4 @@ clean:
        $(MAKE) -C $(LINUX_DIR) ARCH=xen clean
 
 delete: 
-       rm -rf tmp-linux-$(LINUX_26VER) $(LINUX_DIR) 
-
-
-
-
-
-
-
+       rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
index c52d76be26ff70f5bcc8207a2bde36323252200b..6782cf07b72eede22482fd1ec33a6220fc96173a 100644 (file)
@@ -1,7 +1,9 @@
 
+LINUX_SERIES = 2.6
+
 EXTRAVERSION = xenU
 
-FULLVERSION  = $(LINUX_26VER)-$(EXTRAVERSION)
+FULLVERSION  = $(LINUX_VER)-$(EXTRAVERSION)
 
 LINUX_DIR    = linux-$(FULLVERSION)
 
@@ -16,11 +18,11 @@ build: $(LINUX_DIR)
        $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install
 
 
-$(LINUX_DIR):  pristine-linux-$(LINUX_26VER)
+$(LINUX_DIR):  pristine-linux-$(LINUX_VER)
        rm -rf $(LINUX_DIR)
-       cp -al pristine-linux-$(LINUX_26VER) $(LINUX_DIR)
+       cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR)
        # Apply arch-xen patches
-       ( cd linux-$(LINUX_26VER)-xen-sparse ; \
+       ( cd linux-$(LINUX_VER)-xen-sparse ; \
           ./mkbuildtree ../$(LINUX_DIR) )
        # Patch kernel Makefile to set EXTRAVERSION
        ( cd $(LINUX_DIR) ; \
@@ -34,11 +36,4 @@ clean:
        $(MAKE) -C $(LINUX_DIR) ARCH=xen clean
 
 delete: 
-       rm -rf tmp-linux-$(LINUX_26VER) $(LINUX_DIR) 
-
-
-
-
-
-
-
+       rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
index 0e2ae60faa33b8d7806876826a669e8d63bdbada..53e02b739ffe221fadb41467b9b5a783deddd81e 100644 (file)
@@ -1,5 +1,6 @@
 
 NETBSD_RELEASE   ?= 2.0
+NETBSD_CVSSNAP   ?= 20040906
 
 EXTRAVERSION = xenU
 
@@ -11,40 +12,19 @@ NETBSD_DIR   = netbsd-$(FULLVERSION)
 
 include buildconfigs/Rules.mk
 
-NETBSD_VER       ?= $(shell ( /bin/ls -ld netbsd-$(NETBSD_RELEASE)*-xen-sparse ) 2>/dev/null | \
-                     sed -e 's!^.*netbsd-\(.\+\)-xen-sparse!\1!' )
-NETBSD_CVSSNAP   ?= 20040906
-NETBSD_SRC_PATH  ?= .:..
-NETBSD_SRC       ?= $(firstword $(foreach dir,$(subst :, ,$(NETBSD_SRC_PATH)),\
-                    $(wildcard $(dir)/netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.*z*)))
-NETBSD_TOOLS_SRC ?= $(firstword $(foreach dir,$(subst :, ,$(NETBSD_SRC_PATH)),\
-                    $(wildcard $(dir)/netbsd-$(NETBSD_VER)-tools.tar.*z*)))
-
 build: $(NETBSD_DIR) netbsd-$(EXTRAVERSION)
 
-netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2:
-ifeq ($(NETBSD_SRC),)
-       @echo "Cannot find netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.gz in path $(NETBSD_SRC_PATH)"
-       @wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 -O./netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2
-NETBSD_SRC := ./netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 
-endif
-
-pristine-netbsd-$(NETBSD_VER): $(NETBSD_SRC)
-       rm -rf tmp-netbsd-$(NETBSD_VER) $@ && \
-       mkdir -p tmp-netbsd-$(NETBSD_VER) && \
-       tar -C tmp-netbsd-$(NETBSD_VER) -jxf $(NETBSD_SRC) && \
-       mv tmp-netbsd-$(NETBSD_VER)/* $@
-       touch $@ # update timestamp to avoid rebuild
-       @rm -rf tmp-netbsd-$(NETBSD_VER)
+NETBSD_TOOLS_SRC ?= $(firstword $(foreach dir,$(subst :, ,$(NETBSD_SRC_PATH)),\
+                    $(wildcard $(dir)/netbsd-$(NETBSD_VER)-tools.tar.*z*)))
 
-pristine-netbsd-tools-src: 
+netbsd-tools-src: 
 ifeq ($(NETBSD_TOOLS_SRC),)
        @echo "Cannot find netbsd-$(NETBSD_VER)-tools.tar.gz in path $(NETBSD_SRC_PATH)"
        @wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/netbsd-$(NETBSD_VER)-tools.tar.bz2 -O./netbsd-$(NETBSD_VER)-tools.tar.bz2
 NETBSD_TOOLS_SRC := ./netbsd-$(NETBSD_VER)-tools.tar.bz2 
 endif
 
-netbsd-tools: pristine-netbsd-tools-src
+netbsd-tools: netbsd-tools-src
        @[ -d netbsd-$(NETBSD_RELEASE)-tools ] || { \
                echo extract $(NETBSD_TOOLS_SRC); \
                tar -jxf $(NETBSD_TOOLS_SRC); }
@@ -60,7 +40,7 @@ $(NETBSD_DIR): netbsd-tools pristine-netbsd-$(NETBSD_VER)
 netbsd-xen%:   
        $(MAKE) -C netbsd-$(FULLVERSION) config
        $(MAKE) -C netbsd-$(FULLVERSION) netbsd
-       $(MAKE) -C netbsd-$(FULLVERSION) INSTALL_PATH=$(INSTALL_DIR) INSTALL_NAME=boot/netbsd-$(NETBSD_VER)-$(subst netbsd-,,$@) install
+       $(MAKE) -C netbsd-$(FULLVERSION) INSTALL_PATH=$(INSTALL_DIR) INSTALL_NAME=boot/netbsd-$(NETBSD_VER)-xen$* install
 
 clean:
        $(MAKE) -C netbsd-$(FULLVERSION) clean